/**
 * 
 */
package cn.biplam.common.file.object;

import java.io.Serializable;

import cn.biplam.common.wrapper.ErrorMessage;

/**
 * 对象序列化文件操作类
 * 		该类由ObjectFile操作，在序列化一个对象之前，由该类保存对象的类名称。
 * @author 	WangSong
 * @create 	2009-3-29 下午02:25:54
 * @version 1.0
 */
public class ObjectSerialFile implements Serializable {

	/** */
	private static final long serialVersionUID = -7394534451319400240L;
	/**存储/读取的对象实例 */
	private Object mObject=null;
	/**对象完整的类名称 */
	private String sObjectName=null;
	
	@SuppressWarnings("unused")
	private ObjectSerialFile(){}
	
	/**
	 * 功能：构造方法 传入一个对象初始化
	 * @param obj	需要序列化的对象实例
	 * @throws ErrorMessage 
	 */
	public ObjectSerialFile(Object obj) throws ErrorMessage{
		if(obj == null){
			//TODO 抛出对象为空异常
			throw new ErrorMessage("Object is null!");
		}
		this.mObject=obj;
		this.sObjectName=obj.getClass().getName();
	}
	
	/**
	 * 功能：构造方法
	 * @param obj		需要序列化的对象实例
	 * @param fileName	序列化文件名称(包括path)
	 * @throws ErrorMessage
	 */
	public ObjectSerialFile(Object obj,String fileName) throws ErrorMessage{
		this(obj);
	}
	
	/**
	 * 功能：返回内置的序列化对象实例
	 * @return
	 */
	public Object get(){
		return this.mObject;
	}

	/**
	 * 功能：获得对象类名称
	 * @return
	 */
	public String getObjectName() {
		return sObjectName;
	}

	/**
	 * 功能：返回存储对象的类名称
	 * @return
	 */
	public String toString(){
		return this.getObjectName();
	}
}

/**
 * 
 * 
 */
